package com.dingreading.cloud.soms.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 实体类。
 *
 * @author Administrator
 * @since 2023-11-22
 */
@Data
@Table(value = "ca_call_names")
public class CaCallNames implements Serializable {

    @Id(keyType = KeyType.Auto)
    private Long id;

    /**
     * 公司uid
     */
    @ApiModelProperty(value = "公司uid")
    private String corpUid;

    /**
     * 门店uid
     */
    @ApiModelProperty(value = "门店uid")
    private String storeUid;

    /**
     * 门店名称
     */
    @ApiModelProperty(value = "门店名称")
    private String storeName;

    /**
     * 课程表uid
     */
    @ApiModelProperty(value = "课程表uid")
    private String scheduleUid;

    /**
     * 活动uid
     */
    @ApiModelProperty(value = "活动uid")
    private String lessonUid;

    /**
     * 课程表id
     */
    @ApiModelProperty(value = "课程表id")
    private Long scheduleId;

    /**
     * 点名uid
     */
    @ApiModelProperty(value = "点名uid")
    private String uid;

    /**
     * 活动日期
     */
    @ApiModelProperty(value = "活动日期")
    private String teachDate;

    /**
     * 周几，系统内数字
     */
    @ApiModelProperty(value = "活动日期")
    private Integer weekNum;

    /**
     * 周几，周一
     */
    @ApiModelProperty(value = "周几")
    private String weekName;

    /**
     * 活动开始时间 HH:mm
     */
    @ApiModelProperty(value = "活动开始时间 HH:mm")
    private String beginTime;

    /**
     * 活动结束时间 HH:mm
     */
    @ApiModelProperty(value = "活动结束时间 HH:mm")
    private String endTime;

    /**
     * 社团id
     */
    @ApiModelProperty(value = "社团id")
    private Long classId;

    /**
     * 社团uid
     */
    @ApiModelProperty(value = "社团uid")
    private String classUid;

    /**
     * 社团名称
     */
    @ApiModelProperty(value = "社团名称")
    private String className;

    /**
     * 服务uid
     */
    @ApiModelProperty(value = "服务uid")
    private String projectUid;

    /**
     * 服务项目名称
     */
    @ApiModelProperty(value = "服务项目名称")
    private String productName;

    /**
     * 服务阶段uid
     */
    @ApiModelProperty(value = "服务阶段uid")
    private String stageUid;

    /**
     * 服务项目阶段名称
     */
    @ApiModelProperty(value = "服务阶段名称")
    private String stageName;

    /**
     * 活动室id
     */
    @ApiModelProperty(value = "活动室id")
    private Long roomId;

    /**
     * 活动室uid
     */
    @ApiModelProperty(value = "活动室uid")
    private String roomUid;

    /**
     * 活动室名称
     */
    @ApiModelProperty(value = "活动室名称")
    private String roomName;

    /**
     * 活动内容
     */
    private String content;

    /**
     * 主讲导读uid
     */
    @ApiModelProperty(value = "主讲导读uid")
    private String teacherUid;

    /**
     * 主讲导读名
     */
    @ApiModelProperty(value = "主讲导读名")
    private String teacherName;

    /**
     * 活动导读username集合
     */
    @ApiModelProperty(value = "活动导读username集合")
    private String usernames;

    /**
     * 会员id
     */
    @ApiModelProperty(value = "会员id")
    private Long memberId;

    /**
     * 会员uid
     */
    @ApiModelProperty(value = "会员uid")
    private String memberUid;

    /**
     * 会员名称
     */
    @ApiModelProperty(value = "会员名称")
    private String memberName;

    /**
     * 会员联系电话
     */
    @ApiModelProperty(value = "会员联系电话")
    private String mob;

    /**
     * 收费状态 1.收费 0.免费
     */
    @ApiModelProperty(value = "收费状态 1.收费 0.免费")
    private Integer freeStatus;

    /**
     * 参与状态 1.已到 2.迟到 3.请假 4.未到
     */
    @ApiModelProperty(value = "参与状态 1.已到 2.迟到 3.请假 4.未到 -1.活动次数不足")
    private Integer callStatus;

    @ApiModelProperty(value = "参与状态名")
    private String callStatusName;

    /**
     * 会员类型 1.本活动会员 2.补缺会员 3.插班会员 4.试听会员
     */
    @ApiModelProperty(value = "会员类型 1.本活动会员 2.补缺会员 3.插班会员 4.试听会员")
    private Integer studentType;

    @ApiModelProperty(value = "会员类型名")
    private String studentTypeName;

    /**
     * 补缺状态
     */
    @ApiModelProperty(value = "补缺状态 0.未补缺 1.已补缺")
    private Integer makeupStatus;

    /**
     * 补缺的活动id
     */
    @ApiModelProperty(value = "补缺的活动id")
    private Long makeupLessonId;

    /**
     * 补缺的活动uid
     */
    @ApiModelProperty(value = "补缺的活动uid")
    private String makeupLessonUid;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;


    /**
     * 完成后，扣除活动时消耗的服务项目的收入类型
     */
    @ApiModelProperty(value = "收入类型")
    private String orderType;

    /**
     * 完成后，扣除活动时消耗的服务项目的订单号
     */
    @ApiModelProperty(value = "订单号")
    private String orderCode;

    /**
     * 完成后，扣除活动时消耗的服务项目uid
     */
    @ApiModelProperty(value = "服务项目uid")
    private String serviceUid;

    /**
     * 服务单价（课时消耗金额）
     */
    @ApiModelProperty(value = "服务单价")
    private Double unitAmount;

    /**
     * 完成后，扣除活动时消耗的服务项目是否为赠送 是:1，否:0
     */
    @ApiModelProperty(value = "是否为赠送 是:1，否:0")
    private Integer isGift;

    /**
     * 活动状态 -1.已取消 0.未活动 1.已活动 2.已完成
     */
    @ApiModelProperty(value = "活动状态 -1.已取消 0.未活动 1.已活动 2.已完成")
    private Integer status;

    /**
     * 课时消耗类型 0.免费 -1.未扣 1.正价 2.赠送 3.体验 4.试听
     */
    @ApiModelProperty(value = "课时消耗类型")
    private Integer hourType;

    /**
     * 课时消耗类型名称
     */
    @ApiModelProperty(value = "课时消耗类型名称")
    private String hourTypeName;

    /**
     * 创建人uid
     */
    @ApiModelProperty(value = "创建人uid")
    private String addStaffUid;

    /**
     * 创建人姓名
     */
    @ApiModelProperty(value = "创建人姓名")
    private String addStaffName;

    /**
     * 更新人uid
     */
    @ApiModelProperty(value = "更新人uid")
    private String lastStaffUid;

    /**
     * 更新人姓名
     */
    @ApiModelProperty(value = "更新人姓名")
    private String lastStaffName;

    /**
     * 点名人uid
     */
    @ApiModelProperty(value = "点名人uid")
    private String callStaffUid;

    /**
     * 点名人姓名
     */
    @ApiModelProperty(value = "点名人姓名")
    private String callStaffName;

    /**
     * 完成人uid
     */
    @ApiModelProperty(value = "完成人uid")
    private String closeStaffUid;

    /**
     * 完成人姓名
     */
    @ApiModelProperty(value = "完成人姓名")
    private String closeStaffName;

    /**
     * 点名时间
     */
    @ApiModelProperty(value = "点名时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date callTime;

    /**
     * 完成时间
     */
    @ApiModelProperty(value = "完成时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date closeTime;

    /**
     * 添加时间
     */
    @ApiModelProperty(value = "添加时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()")
    private Date addTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()", onUpdateValue = "now()")
    private Date editTime;


}
